#pragma once
#include "UltimatePhysXPrecompiled.h"
#include "UltimatePhysicsActor.h"

class _UltimatePhysXExport UltimatePhysXActor : public UltimatePhysicsActor
{
	NxActor* nxActor;
	void * userData;

public:

	virtual void addForce(Ogre::Vector3 force);
	virtual void addTorque(Ogre::Vector3 force);

	virtual void setGlobalPosition(Ogre::Vector3 position);
	virtual Ogre::Vector3 getGlobalPosition();
	virtual void setGlobalOrientation(Ogre::Quaternion orientation);
	virtual Ogre::Quaternion getGlobalOrientation();
	virtual void setUserData(void* userData);
	virtual void* getUserData();
	virtual void setGroup(int i);
	virtual int getGroup();
	virtual void setLookAt(Ogre::Vector3 target);
	virtual Ogre::Vector3 getFacingDir();
	virtual void disableGravity();
	virtual void setKinematic(bool isKinematic);

	virtual void setNxActor(NxActor* actor);
	virtual NxActor* getNxActor();

	UltimatePhysXActor(void);
	virtual ~UltimatePhysXActor(void);
};

